home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cbibcode.arc / LFIND.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-08-05  |  1.0 KB  |  31 lines

  1. /* lfind on page 314 of the Turbo C Bible */
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. int mycompare(const void *, const void *);
  6. main(int argc, char **argv, char **envp)
  7. {
  8.    unsigned int count;
  9.    char **p_table, **result;
  10.    if(argc <2)
  11.    {
  12.       printf("Usage: %s <KEYWORD>\n", argv[0]);
  13.       exit(0);
  14.    }
  15.                /* Find length of environment table and print it */
  16.    printf("==== Environment table contains ====\n");
  17.    for(count = 0, p_table = envp; *p_table != NULL; p_table++, count++)
  18.         printf("%s\n", *p_table);
  19.                /* Search for the KEY variable in the environment */
  20.     result = (char **)lfind(&argv[1], envp, &count, sizeof(char *),
  21.                                 mycompare);
  22.    if(result != NULL)
  23.       printf("\nFound %s in\n%s\n", argv[1], *result);
  24.    else
  25.       printf("\n%s not found. Try with uppercase keyword\n", argv[1]);
  26. }
  27.                        /* ----------------------------- */
  28. int mycompare(const void *arg1, const void *arg2)
  29. {
  30.    return(strncmp(*(char**)arg1, *(char**)arg2, strlen(*(char**)arg1)));
  31. }